import time
import math
import pytest
import requests

# 配置参数
CHECK_URL = "https://192.168.100.200:31616"
CHECK_INTERVAL = 10 * 60  # 10分钟（秒）
TOTAL_TIMEOUT = 60 * 60  # 60分钟（秒）


def test_install_success():
    """验证接口状态变为200（安装成功）"""
    start_time = time.time()
    checks = 0

    # 计算预期的检查次数
    max_checks = math.ceil(TOTAL_TIMEOUT / CHECK_INTERVAL)

    while time.time() - start_time < TOTAL_TIMEOUT:
        checks += 1
        try:
            # 发送请求（忽略SSL证书验证）
            response = requests.get(CHECK_URL, verify=False, timeout=10)

            # 检查状态码
            if response.status_code == 200:
                pytest.exit("安装成功")  # 成功时退出测试

        except requests.RequestException:
            # 忽略所有请求异常
            pass

        # 等待下一次检查
        time.sleep(CHECK_INTERVAL)

    # 60分钟后仍未成功
    pytest.fail(f"安装失败：60分钟内进行了 {checks}/{max_checks} 次检查，未收到200响应")
